package com.own.component.util.database.base.model;

import lombok.Builder;
import lombok.Getter;

import java.io.Serializable;
import java.util.function.Function;

/**
 * DatabaseEntryField
 *
 * @author chenxueli
 * @date 2022-10-21 09:22:00
 */
@Getter
@Builder
public class DatabaseEntryField implements Serializable {

    /**
     * 表名称
     */
    private final String tableName;

    /**
     * 表备注
     */
    private final String tableComment;

    /**
     * 字段名称
     */
    private final String columnName;

    /**
     * 字段备注
     */
    private final String columnComment;

    /**
     * 字段类型
     */
    private final String type;

    /**
     * 字段长度
     */
    private final String length;

    /**
     * 是否为空
     */
    private final String isNull;

    /**
     * 是否为空解析器
     */
    private final Function<String, Boolean> nullHandler;

    /**
     * 是否为主键
     */
    private final String isPrimaryKey;

    /**
     * 主键解析器
     */
    private final Function<String, Boolean> primaryKeyHandler;

    /**
     * 默认值
     */
    private final String defaultValue;

}
